home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / TurboTCP 1.0.1 / TurboTCP.source / cast.h next >
Text File  |  1993-07-09  |  573b  |  22 lines

  1. /*
  2.     Cast.h
  3.  
  4.     Provides a debug macro which casts an object, and asserts that the
  5.     object is a member of the class cast to.
  6.  
  7. */
  8.  
  9. // thanks to a unknown contributor to "comp.sys.mac.oop.tcl" for this file -ES
  10.  
  11.  
  12. #ifdef __TCL_DEBUG__
  13.     static CObject * gCastObject;
  14.     #define CAST( object, class )   (gCastObject = (CObject*)(object), ASSERT(member(gCastObject, class)), (class *) (gCastObject))
  15. #else
  16.     #define CAST( object, class )   ((class *) (object))
  17. #endif
  18.  
  19.  
  20.     #define CheckedCast(obj,type) \
  21.     (((obj) && member((obj),type)) ? ((type *) (obj)) : nil)
  22.